#include "TADNIF.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>

NIF PedirNIF(){
	NIF N;
	char Inter[10];
	flushall();
	printf("Introduce el NIF: ");
	scanf("%[^\n]", &Inter);
	SepararNIF(Inter, &N.NumNIF, &N.LetraNIF);
	return(N);
}

/*void ModificarNIF (NIF *N, char Dato[10]){
	char Num[9], Letra;
	SepararNIF(char Dato, char *Num, char *Letra);
	strcpy(N->NumNIF, Num);
	strcpy(N->Letra, Letra);
}
*/
void SepararNIF(char Intro[10], char *Num, char *Let){
	strcpy(Num,Intro);
	*(Num+8)= '\0';
	*Let=Intro[8];
}

NIF GenerarNIF(char Inter[10]){
	NIF N;
	SepararNIF(Inter, &N.NumNIF, &N.LetraNIF);
	return(N);
}

NIF GenerarNIFFic(){
	NIF N;
	strcpy(N.NumNIF,"00000000");
	N.LetraNIF=65;
	return(N);

}
unsigned long ConvNum(char Int[9]){
	unsigned long Res=0;
	Res=atol(Int);
	return (Res);
}

char CalcLetra(NIF Int){
	unsigned long Valor=0;
	char Letra, LetraDNI[] = "TRWAGMYFPDXBNJZSQVHLCKE";
	Valor=ConvNum(Int.NumNIF);
	Letra = LetraDNI[Valor % 23];
	return(Letra);
}

NIF CambiarLetra(NIF Int, char Letra){
	strcpy(Int.LetraNIF, Letra);
	return(Int);
}

void VisualizarNIF(NIF N){
	printf("\nNIF:\t\t\t\t%s \b%c.", N.NumNIF, N.LetraNIF);
}

int CompararNIF(NIF N1, NIF N2){
  int Res=0;
  Res=strcmp(N1.NumNIF,N2.NumNIF);
  if (Res==0){
	  Res=strcmp(N1.LetraNIF, N2.LetraNIF);
  }
  if (Res > 0) Res = 1;
  else if (Res < 0) Res = 2;
  return(Res);
}

void CopiarNIF(NIF NOri, NIF *NCopia){
	NCopia->LetraNIF = NOri.LetraNIF;
	strcpy(NCopia->NumNIF, NOri.NumNIF);
}